package com.finance.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * C03
 * 发卡数据
 */
@Data
@TableName("ods_card_issue")
@ApiModel(description = "发卡数据")
public class CardIssue {
    
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键ID")
    private Long id;

    /**
     * 发卡时间
     */
    @ApiModelProperty(value = "发卡时间", required = true)
    private LocalDateTime issueTime;

    /**
     * 开卡时间
     */
    @ApiModelProperty(value = "开卡时间")
    private LocalDateTime activateTime;

    /**
     * 发卡影城名称
     */
    @ApiModelProperty(value = "发卡影城名称", required = true)
    private String issueCinemaName;

    /**
     * 影城ID
     */
    @ApiModelProperty(value = "影城ID", required = true)
    private String cinemaId;

    /**
     * 订单号
     */
    @ApiModelProperty(value = "订单号", required = true)
    private String orderNo;

    /**
     * 卡号
     */
    @ApiModelProperty(value = "卡号", required = true)
    private String cardNo;

    /**
     * 卡类型
     */
    @ApiModelProperty(value = "卡类型", required = true)
    private String cardType;

    /**
     * 卡政策
     */
    @ApiModelProperty(value = "卡政策", required = true)
    private String cardPolicy;

    /**
     * 卡政策编码
     */
    @ApiModelProperty(value = "卡政策编码", required = true)
    private String cardPolicyCode;

    /**
     * 是否实体卡
     */
    @ApiModelProperty(value = "是否实体卡", required = true)
    private String isPhysicalCard;

    /**
     * 应收工本费，单位：分
     */
    @ApiModelProperty(value = "应收工本费，单位：分", required = true)
    private Long cardFee;

    /**
     * 实收工本费，单位：分
     */
    @ApiModelProperty(value = "实收工本费，单位：分", required = true)
    private Long actualCardFee;

    /**
     * 开卡金额，单位：分
     */
    @ApiModelProperty(value = "开卡金额，单位：分", required = true)
    private Long activateAmount;

    /**
     * 会费，单位：分
     */
    @ApiModelProperty(value = "会费，单位：分", required = true)
    private Long membershipFee;

    /**
     * 支付工具
     */
    @ApiModelProperty(value = "支付工具", required = true)
    private String payTool;

    /**
     * 支付工具编码
     */
    @ApiModelProperty(value = "支付工具编码", required = true)
    private String payToolCode;

    /**
     * 销售方式
     */
    @ApiModelProperty(value = "销售方式", required = true)
    private String saleType;

    /**
     * 发卡渠道
     */
    @ApiModelProperty(value = "发卡渠道", required = true)
    private String issueChannel;

    /**
     * 发卡渠道编码
     */
    @ApiModelProperty(value = "发卡渠道编码", required = true)
    private String issueChannelCode;

    /**
     * 操作员工号
     */
    @ApiModelProperty(value = "操作员工号")
    private String operatorEmployeeNo;

    /**
     * 操作员
     */
    @ApiModelProperty(value = "操作员")
    private String operator;

    /**
     * 工作站名称
     */
    @ApiModelProperty(value = "工作站名称")
    private String workstationName;

    /**
     * 卡数量
     */
    @ApiModelProperty(value = "卡数量", required = true)
    private Integer cardQuantity;

    /**
     * 是否开卡充值
     */
    @ApiModelProperty(value = "是否开卡充值", required = true)
    private String isActivateRecharge;

    /**
     * 开卡充值金额，单位：分
     */
    @ApiModelProperty(value = "开卡充值金额，单位：分")
    private Long activateRechargeAmount;

    /**
     * 发卡影城编码
     */
    @ApiModelProperty(value = "发卡影城编码", required = true)
    private String issueCinemaCode;

    /**
     * 影院所属区域
     */
    @ApiModelProperty(value = "影院所属区域", required = true)
    private String cinemaArea;

    /**
     * 影城所属区域编码
     */
    @ApiModelProperty(value = "影城所属区域编码", required = true)
    private String cinemaAreaCode;

    /**
     * 会员ID
     */
    @ApiModelProperty(value = "会员ID")
    private String memberId;

    /**
     * 商户订单号
     */
    @ApiModelProperty(value = "商户订单号")
    private String merchantOrderNo;

    /**
     * 第三方支付流水号
     */
    @ApiModelProperty(value = "第三方支付流水号")
    private String thirdPartyPayNo;

    /**
     * 会员卡有效期
     */
    @ApiModelProperty(value = "会员卡有效期")
    private String cardValidityPeriod;

    /**
     * 数据所属日期
     */
    @ApiModelProperty(value = "数据所属日期", required = true)
    private String searchDate;
} 